home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.3 Development Libraries / SGI IRIX 6.3 Development Libraries.iso / dist6.3 / ViewKit_dev.idb / usr / include / Vk / VkMsgService.h.z / VkMsgService.h
Encoding:
C/C++ Source or Header  |  1996-09-20  |  3.1 KB  |  102 lines

  1. #ifndef VK_MSG_SERVICE
  2. #define VK_MSG_SERVICE
  3.  
  4. #include <Vk/VkMsgFacility.h>
  5.  
  6. class VkMsgClient;
  7. class VkMsgService;
  8.  
  9. extern VkMsgService *theMessageService;
  10.  
  11. #define VK_MSG_TRANSLATIONS_RESOURCE_NAME    "vkmsgTranslations"
  12. #define VK_MSG_TRANSLATIONS_CLASS_NAME        "VkmsgTranslations"
  13.  
  14. typedef struct {
  15.   VkMsgClient *client;
  16.   VkMsgFacilityCallback callback;
  17.   void *callbackData;
  18. } VkMsgServiceInfo;
  19.  
  20. typedef struct {
  21.   VkMsgClient *client;
  22.   VkMsgMessage msg_out;
  23. } VkMsgServiceRequest;
  24.  
  25. typedef struct {
  26.   char *op;
  27.   char *action;
  28.   VkMsgFacilityReason reason;
  29.   VkMsgPattern pat;
  30.   VkMsgClient *client;
  31. } VkMsgServicePair;
  32.  
  33. class VkMsgService : public VkMsgFacility {
  34. public:
  35.   VkMsgService(Widget w, const char *ptid = NULL, const char *sessid = NULL);
  36.   ~VkMsgService();
  37.  
  38.   void registerPatterns(VkMsgClient *client, Widget w);
  39.  
  40.   void registerClient(VkMsgClient *client,
  41.               VkMsgFacilityCallback callback, void *client_data);
  42.   void unregisterClient(VkMsgClient *client);
  43.  
  44.   VkMsgMessage sendRequest(VkMsgClient *client,
  45.                char *op, int argc, VkMsgArg *argv);
  46.   VkMsgMessage sendRequest(VkMsgClient *client, char *op);
  47.   VkMsgMessage sendRequest(VkMsgClient *client, VkMsgMessage msg_out);
  48.  
  49.   VkMsgMessage sendFileRequest(VkMsgClient *client,
  50.                    char *op, char *file, int argc, VkMsgArg *argv);
  51.   VkMsgMessage sendFileRequest(VkMsgClient *client, char *op, char *file);
  52.  
  53.   VkMsgPattern addAction(char *op, char *action, VkMsgActionType type,
  54.              VkMsgClient *client);
  55.   VkMsgPattern createAction(char *op, char *action, VkMsgActionType type,
  56.                 VkMsgClient *client);
  57.   void removeAction(VkMsgPattern pat);
  58.   VkMsgServicePair *findAction(VkMsgPattern pat);
  59.  
  60.   void updatePatterns();
  61.  
  62.   char *mangleTranslationName(char *name, VkMsgClient *client,
  63.                   Boolean useCounter);
  64.  
  65. protected:
  66.   virtual Boolean defaultCallback(VkMsgFacilityReason reason,
  67.                   VkMsgMessage msg_in,
  68.                   char *op, int argc, VkMsgArg *argv,
  69.                   Boolean *deleteMessage);
  70.  
  71.   Boolean handleOneTranslation(VkMsgClient *client, char *str);
  72.   void addOpActionPair(char *op, char *action, VkMsgFacilityReason reason,
  73.                VkMsgPattern pat, VkMsgClient *client);
  74.   int findActionIndex(VkMsgPattern pat);
  75.   char *findMatchingPattern(VkMsgPattern pat, VkMsgFacilityReason reason);
  76.   char *findMatchingAction(char *op, VkMsgFacilityReason reason);
  77.   char *findMatchingClientAction(char *op, VkMsgFacilityReason reason,
  78.                  VkMsgClient *client);
  79.  
  80.   Boolean callInfoCallback(int index,
  81.                VkMsgFacilityReason reason, VkMsgMessage msg_in,
  82.                char *op, int argc, VkMsgArg *argv);
  83.   void addRequest(VkMsgClient *client, VkMsgMessage msg_out);
  84.   void removeRequest(int index);
  85.   VkMsgClient *retrieveRequest(VkMsgMessage msg_in);
  86.   Boolean callActions(VkMsgMessage msg_in, VkMsgFacilityReason reason,
  87.               char *op, int argc, VkMsgArg *argv,
  88.               Boolean *deleteMessage);
  89.   Boolean callAction(VkMsgMessage msg_in, VkMsgFacilityReason reason,
  90.              char *action, char *op, int argc, VkMsgArg *argv,
  91.              Boolean *deleteMessage);
  92.  
  93.   int sizeInfo, numInfo;
  94.   VkMsgServiceInfo *info;
  95.   int sizeRequests, numRequests;
  96.   VkMsgServiceRequest *requests;
  97.   int sizePairs, numPairs;
  98.   VkMsgServicePair *pairs;
  99. };
  100.  
  101. #endif
  102.